DCOM95 gΦre la communication COM distribuΘe pour Microsoft(r) Windows(r) 95.Le protocole de ligne DCOM offre de maniΦre transparente, une communication fiable, sΘcurisΘe et efficace entre composants COM (Component Object Model) tels que les commandes et les scripts ActiveX(r), ainsi que les mini-applications Java situΘes sur diffΘrentes machines d'un rΘseau local (LAN), d'un rΘseau Θtendu ou sur Internet. Avec DCOM, vos applications peuvent Ωtre distribuΘes en plusieurs emplacements de maniΦre logique du point de vue du client et de l'application.
Pour des informations plus dΘtaillΘes, voir les gΘnΘralitΘs techniques sur DCOM, disponibles α la page http://www.microsoft.com/com/.
Sommaire
========
I. Nouvelles fonctionnalitΘs
II. Corrections de bogues
III. ProblΦmes connus
IV. DiffΘrences avec DCOM sous Windows NT
V. Redistribution
VI. Assistance & ressources
VII. Liste des fichiers
I. Nouvelles fonctionnalitΘs
---------------
Remplacement de DCOM95 par une ancienne version non-autorisΘ
Avec les versions prΘcΘdentes de DCOM95, vous pouviez remplacer une version plus rΘcente de DCOM95 part une version plus ancienne. Le numΘro de version Θtant α prΘsent vΘrifiΘ au moment de l'installation vous ne pouvez plus le faire. Cette modification permet d'Θviter les problΦmes dus α des versions de DLL incompatibles.
Support pour la surveillance de processus de Visual Studio 6.0
Concernant le support de Visual Studio 6.0, DCOM95 offre des informations de surveillance qui permettent aux dΘveloppeurs de mieux comprendre le comportement, les
performances et la structure de leur application. Si vous utilisez Visual Studio Analyzer sur un ordinateur sous Windows 95, vous devriez toujours utiliser cette version de DCOM95.
Nouveau rΘpertoire crΘΘ par le programme d'installation
Le programme d'installation crΘe un rΘpertoire appelΘ DCOM95 sous votre rΘpertoire systΦme. Le contrat de licence d'utilisateur final et autres fichiers y sont enregistrΘs. Le programme d'installation crΘe Θgalement un sous-rΘpertoire dans le rΘpertoire DCOM95 appelΘ
OLDOLE, dans lequel les anciens fichiers DCOM95 et OLE sont sauvegardΘs. Ces fichiers sont restaurΘs si, plus tard, vous dΘsinstallΘ DCOM95.
CIS (COM Internet Services)
Le CIS permet aux clients et aux serveurs de se connecter via
Internet. CIS comprend
* Un nouveau protocole : Tunneled TCP
* Un nouveau nom : OBJREF
* Un nouvel utilitaire : CISCNFG
Pour support de client CIS sous Windows 95, vous devez installer DCOM95
et DCOMCFG. Puis utiliser l'outil CISCNFG, qui est installΘ au moment ou vous installez l'utilitaire de configuration de DCOM, pour changer la clΘ de registre qui dΘfinit le protocole utilisΘ pour les processus α distance, dans la fenΩtre DOS, tapez :
ciscnfg <protocol>
O∙ <protocol> sera :
* rpc pour utiliser RPC
* http pour utiliser HTTP
* tcp_http pour essayer TCP, puis si le dΘlai de connexion du serveur expire, essayer HTTP.
La commande ciscnfg sans argument fournit des informations d'utilisation.
Aucune mise α jour de SDK n'est requise pour utiliser le protocole Tunneled TCP.
Il existe quelques mises α jour de noms OBJREF.
CreateObjrefMoniker
CrΘe un nom OBJREF basΘ sur un pointeur α un objet.
WINOLEAPI CreateObjrefMoniker(
LPUNKNOWN pUnk, //Pointeur vers l'objet
LPMONIKER *ppMk //Adresse du pointeur au nom OBJREF
);
ParamΦtres
pUnk
Pointeur vers l'interface IUnknown sur l'objet que le nom doit reprΘsenter.
ppMk
Adresse d'un pointeur vers l'interface IMoniker sur le nom OBJREF
crΘΘ.
Valeurs de retour
Cette fonction gΦre les valeurs de retour standards
E_OUTOFMEMORY et E_UNEXPECTED, ainsi que les suivantes :
S_OK
Le nom OBJREF a ΘtΘ crΘΘ avec succΦs.
Remarques
Les clients utilisent des noms OBJREF afin d'obtenir un pointeur en ordre, vers un objet en cours d'exΘcution dans l'espace adresse du serveur.
GΘnΘralement, le serveur appelle CreateObjrefMoniker pour crΘer un nom
OBJREF, puis appelle IMoniker::GetDisplayName, puis diffuse le nom. └ l'Θcran, un nom OBJREF se prΘsente sous la forme :
OBJREF:nnnnnnnn
O∙ nnnnnnnn est un codage base 64 qui contient l'emplacement de la machine, le point final du processus et le IPID (interface pointer ID) de l'objet en cours d'exΘcution.
Le nom α l'Θcran peut alors Ωtre transmis au client sous forme de texte. Par exemple, le nom α l'Θcran peut se situer sur une page HTML tΘlΘchargΘe par le client.
Le client peut passer le nom α l'Θcran α MkParseDisplayName,
qui crΘe un nom OBJREF en se basant sur le nom α l'Θcran. Un appel α la mΘthode IMoniker::BindToObject du nom, crΘe ensuite un pointeur mis en ordre vers l'instance en cours d'exΘcution sur le serveur.
Par exemple, un composant COM situΘ c⌠tΘ serveur contenu dans une page active du serveur peut crΘer un nom OBJREF, obtenir son nom α l'Θcran, l'Θcrire dans la page HTML envoyΘe α l'explorateur du client. Un script exΘcutΘ c⌠tΘ client peut utiliser le nom α l'Θcran pour accΘder α l'objet en cours d'exΘcution. Un script Visual Basic c⌠tΘ client, peut par exemple enregistrer le nom α l'Θcran dans une variable appelΘe strMyName et inclure la ligne :
objMyInstance = GetObject(strMyName)
Le moteur de script fait appel α MkParseDisplayName et IMoniker::BindToObject, le script peut alors utiliser objMyInstance pour se rΘfΘrer directement α l'objet en cours d'exΘcution.
Si l'objet en cours d'exΘcution utilise des IPID statiques et que le processus serveur s'exΘcute toujours sur le mΩme ordinateur situΘ α un point final connu, le nom α l'Θcran du nom OBJREF sera toujours le mΩme. Dans ce cas, le serveur peut enregistrer le nom α l'Θcran au lieu de le calculer α chaque fois qu'il reτoit une requΩte pour l'objet.
ImplΘmentation de IMoniker - OBJREF Moniker
Les noms OBJREF reprΘsentent une rΘfΘrence α un objet en cours d'exΘcution sur un serveur hors processus, localement ou α distance.
Le nom identifie l'objet et l'ordinateur sur lequel il s'exΘcute.
Un nom OBJREF ressemble sur plusieurs points α un nom de pointeur, exceptΘ que l'objet en cours d'exΘcution se trouve hors processus. Un client peut appeler IMoniker::BindToObject sur un nom OBJREF, puis utiliser le pointeur obtenu pour accΘder α l'objet en cours d'exΘcution, quelque soit son emplacement.
Une diffΘrence importante comparΘ α un nom de pointeur : le nom α l'Θcran d'un nom OBJREF peut Ωtre incorporΘ dans une page HTML et l'objet en cours d'exΘcution reprΘsentΘ par le nom peut Ωtre liΘ α un script, α une mini-application ou α une commande ActiveX clients.
Quand utiliser un nom OBJREF
L'utilisation premiΦre d'un nom OBJREF est l'accΦs α un objet en cours d'exΘcution via Internet. Une page serveur active ou autre moyen de gΘnΘrer un contenu HTML dynamique, place le nom α l'Θcran d'un nom OBJREF dans un paramΦtre destinΘ α une mini-application ou α une commande ActiveX. Le code de la mini-application ou de la commande appelle CreateObjrefMoniker pour crΘer un nom OBJREF basΘ sur le nom α l'Θcran, puis appelle IMoniker::BindToObject sur le nom OBJREF obtenu pour accΘder α l'objet en cours d'exΘcution. La page serveur active met alors en ordre, pour le client de la page, un pointeur vers l'objet en cours d'exΘcution.
Remarques
IMoniker::BindToObject. Pour des noms OBJREF, le paramΦtre pmkToLeft
doit Ωtre NULL. Le nom OBJREF reprΘsentant un objet en cours d'exΘcution, aucune activation n'a lieu. Si l'objet reprΘsentΘ n'est plus en cours d'exΘcution, BindToObject Θchoue avec l'erreur E_UNEXPECTED.
IMoniker::BindToStorage. Cette mΘthode permet d'obtenir un pointeur en ordre vers l'interface requise du lieu de stockage de l'objet en cours d'exΘcution. Le nom OBJREF reprΘsentant un objet en cours d'exΘcution, aucune activation n'a lieu. Si l'objet reprΘsentΘ n'est plus en cours d'exΘcution, BindToStorage Θchoue avec l'erreur E_UNEXPECTED.
IMoniker::Reduce. Cette mΘthode renvoie MK_S_REDUCED_TO_SELF puis le retransmet au mΩme nom.
IMoniker::ComposeWith. Si pmkRight est un anti-nom, le nom retournΘ est NULL. Si pmkRight est un composΘ dont le composant le plus α gauche est un anti-nom, le nom retournΘ est le composΘ sans l'anti-nom. Si pmkRight n'est ni un anti-nom, ni un nom composΘ dont le composant le plus α gauche est un anti-nom, la mΘthode vΘrifie le paramΦtre fOnlyIfNotGeneric. Si ce paramΦtre est FALSE, la mΘthode combine les deux noms ; si ce paramΦtre est TRUE, la mΘthode dΘfinit *ppmkComposite sur NULL et retourne MK_E_NEEDGENERIC.
IMoniker::Enum. Cette mΘthode renvoie S_OK et dΘfinit ppenumMoniker sur NULL.
IMoniker::IsEqual. Cette mΘthode renvoie S_OK si *pmkOther est un nom OBJREF et si les chemins d'accΦs aux deux noms sont identiques (en utilisant une comparaison sans distinction de casse). Autrement, la mΘthode renvoie S_FALSE.
IMoniker::Hash. Cette mΘthode calcule une valeur de hash code pour le nom.
IMoniker::IsRunning. Les noms OBJREF reprΘsentant un objet en cours d'exΘcution, cette mΘthode renvoie TRUE sauf s'il est connu, du fait de l'Θchec d'un appel rΘcent, que l'objet n'est plus en cours d'exΘcution.
Cette mΘthode ignore pmkToLeft.
IMoniker::GetTimeOfLastChange. Cette mΘthode renvoie E_NOTIMPL.
IMoniker::Inverse. Cette mΘthode renvoie un anti-nom (c'est α dire, le rΘsultat de l'appel α CreateAntiMoniker).
IMoniker::CommonPrefixWith. Si les deux noms sont identiques, cette
mΘthode renvoie MK_S_US et dΘfinit *ppmkPrefix sur NULL. Si l'autre nom n'est pas un nom OBJREF, cette mΘthode transmet les deux noms α la fonction MonikerCommonPrefixWith. Cette fonction gΦre correctement le cas o∙ l'autre nom est un nom composΘ gΘnΘrique.
S'il n'y a pas de prΘfixe commun, cette mΘthode renvoie MK_E_.
IMoniker::RelativePathTo. Cette mΘthode renvoie E_NOTIMPL.
IMoniker::GetDisplayName. Cette mΘthode permet d'obtenir le nom α l'Θcran du nom OBJREF. Le nom α l'Θcran consiste en un code sur 64 bits qui contient l'emplacement de la machine, le point final du processus et le IPID (interface pointer ID) de l'objet en cours d'exΘcution. Pour compatibilitΘ future, le nom α l'Θcran est limitΘ aux caractΦres qui peuvent Ωtre spΘcifiΘs pour une URL.
IMoniker::ParseDisplayName. Si pmkToLeft n'est pas NULL, cette mΘthode renvoie MK_E_SYNTAX.
IMoniker::IsSystemMoniker. Cette mΘthode renvoie S_OK et retransmet MKSYS_OBJREFMONIKER.
Support des types de donnΘes VB6.0
Visual Basic(r) 6.0 permet α des variantes Visual Basic de contenir des structures de donnΘes dΘfinies par l'utilisateur. └ prΘsent, DCOM95 supporte le traitement α distance de ces variantes.
II. Corrections de bogues
-------------
Condition de course en cours de dΘchargement de plusieurs modules
Lors du dΘchargement simultanΘ de plusieurs modules, une condition de course se produisait avec les versions prΘcΘdentes de DCOM95. Selon l'ordre dans lequel les modules Θtaient dΘchargΘs, une violation d'accΦs pouvait se produire. Ceci a ΘtΘ corrigΘ dans cette version de DCOM95.
Ordinateur restant sans rΘponse en cours de nΘgociations du protocole RPC
Les versions prΘcΘdentes de DCOM95 ne distribuaient pas de messages en cours de nΘgociations du protocole RPC. Dans certains cas, si l'utilisateur lanτait une autre application pendant que les protocoles RPC se nΘgociaient, l'ordinateur semblait rester sans rΘponse. Au bout de 30 secondes, le traitement des messages reprenait. Ce comportement a ΘtΘ modifiΘ dans la derniΦre version de DCOM95 et des applications peuvent Ωtre lancΘes en cours de nΘgociation de protocoles RPC.
Ordinateur restant sans rΘponse en cours de lancement d'une nouvelle application
RPC crΘe un fenΩtre cachΘe dans le MTA (Multiple-Threaded Apartment),
ce qui, selon les spΘcifications DCOM, n'est pas requis pour la distribution des messages. Lorsqu'un utilisateur lance une nouvelle application α partir de son ordinateur, Windows en avertit tous les autres handles de fenΩtres et s'attend α une rΘponse. Sous de prΘcΘdentes versions de DCOM95, la fenΩtre cachΘe RPC pouvait ne pas rΘpondre et Windows se bloquer. Cette version de DCOM95 corrige ce problΦme.
Corruption du tas par de multiples adresses IP
Dans certaines situations, si vous exΘcutiez une prΘcΘdente version de DCOM95 sur une machine avec plusieurs adresses IP, le tampon d'adresses IP saturait et le tas s'endommageait. Ceci a ΘtΘ corrigΘ dans la derniΦre version de DCOM95.
Uniquement la premiΦre adresse IP utilisΘe
Si vous exΘcutiez une prΘcΘdente version de DCOM95 sur une machine ΘquipΘe de deux cartes rΘseau (et donc deux adresses IP, une pour chaque carte), DCOM95 n'utilisait qu'une seule carte rΘseau. Dans cette version de DCOM95, si la premiΦre essayΘe ne fonctionne pas, la deuxiΦme est utilisΘe.
└ prΘsent, RPC essaye plusieurs adresses IP
Lors d'une procΘdure d'appel distant vers une machine possΘdant plusieurs adresses, si la connexion α la premiΦre adresse Θchoue, les autres adresses sont essayΘes.
Les noms de fichiers supportent une syntaxe de chemin d'accΦs supplΘmentaire
└ prΘsent, les noms de fichiers peuvent Ωtre crΘΘs α partir d'arguments de la forme <rΘpertoiredΘpart><accΦsrelatif>, tels que " C:\bug\bug\..\..\foo.jpg ". Dans DCOM95 version 1.1, seuls les chemins relatifs (" ..\..\foo.jpg ") ou absolus (" C:\foo.jpg ") Θtaient autorisΘs.
Erreur de protection gΘnΘrale en cours de dΘchargement d'Oleaut32.dll
Dans les versions prΘcΘdentes de DCOM95, une erreur de protection gΘnΘrale se produisait lorsque Oleaut32.dll Θtait dΘchargΘ avant appel α CoUninitialize. Ceci se produisait surtout lorsque qu'une application VB crΘait une commande statiquement liΘe α Oleaut32.dll, puis la libΘrait avant d'appeler CoUninitialize. Ceci est corrigΘ avec la derniΦre version de DCOM95.
Mises en ordre et en dΘsordre de type Visual Basic
Les mises en ordre et en dΘsordre de certains types de donnΘes Visual Basic ont ΘtΘ corrigΘes. Les paramΦtres de tableaux d'une taille supΘrieure α 64 Ko sont α prΘsent autorisΘs. Les structures dΘfinies en utilisant des alias du type sont α prΘsent correctement mises en ordre et en dΘsordre.
Atomes trop souvent supprimΘs dans OleUninitialize
Ce bogue apparaissait dans des applications qui appelaient OleInitialize et OleUninitialize plusieurs fois. En cours d'initialisation, OLE ajoute plusieurs atomes pour DDE RPC. Ceux-ci ne sont pas α nouveau ajoutΘs s'ils l'ont dΘjα ΘtΘ par un autre thread. Cependant, au cours d'une non-initialisation, des atomes Θtaient toujours supprimΘs et les handles n'Θtaient pas annulΘs. En consΘquence, α l'appel suivant α OleInitialize, les anciens handles existaient toujours, mΩme si les atomes Θtaient dΘjα supprimΘs et OLE ne les rajoutait pas. Ceci entraεnait l'invaliditΘ de tous les atomes OLE aprΦs plusieurs appels α OleInitialize et α OleUninitialize. Ce problΦme a ΘtΘ corrigΘ dans cette version de DCOM95.
Les serveurs ADO se ferment correctement
Les ADO (Active Data Objects) utilisent des noms de pointeurs pour le dΘmarrage d'un processus serveur. Les versions prΘcΘdentes de DCOM95 contenait un bogue concernant le comptage rΘfΘrence du nom de pointeur, par lequel les noms de pointeurs Θtaient crΘΘs α partir d'un comptage rΘfΘrence de 1 au lieu de 0. En consΘquence, le comptage rΘfΘrence n'atteignait jamais zΘro et le nom de pointeur n'Θtait jamais libΘrΘ, entraεnant la non-fermeture des serveurs ADO mΩme aprΦs libΘration du dernier pointeur vers ces serveurs. Ceci a ΘtΘ corrigΘ dans cette version de DCOM95.
CoCreateInstance fonctionne avec son propre nom DNS
Dans les versions prΘcΘdentes de DCOM95, l'appel α CoCreateInstance avec le nom complet de la machine locale ne fonctionnait pas. Ceci a ΘtΘ corrigΘ dans la version courante de DCOM95.
Lent engagement sur le stockage racine avec un trΦs grand fichier composΘ
Dans les versions prΘcΘdentes de DCOM95, le temps d'engagement sur un stockage racine ouvert en mode STGM_TRANSACTED devenait trΦs lent au fur et α mesure que le fichier composΘ devenait trΦs grand (par exemple 400 Mo). Les limites de la page de table interne ont ΘtΘ augmentΘes et le problΦme ne se produit plus.
Exportation d'objets α partir d'un MTA recrΘΘ
Dans les versions prΘcΘdentes de DCOM95, un serveur ne pouvait pas exporter un objet α partir d'un MTA (Multi-Threaded Apartment) s'il n'Θtait pas crΘΘ pour la premiΦre fois dans le processus. Ceci a ΘtΘ corrigΘ. └ prΘsent, si un serveur crΘe un MTA, le supprime, puis le recrΘe, les objets peuvent Ωtre exportΘs α partir du MTA.
Instances multiples d'exΘcutables Visual Basic 4
Dans DCOM95 v1.1, si vous dΘmarriez plusieurs instances du mΩme exΘcutable Visual Basic 4, puis les fermiez dans un ordre quelconque mais DEPS (dernier entrΘ premier sorti), le dernier exΘcutable se bloquait. Ceci s'appliquait Θgalement aux E-Forms dans Microsoft Exchange. Ceci a ΘtΘ corrigΘ dans la derniΦre version de DCOM95. Vous pouvez α prΘsent fermer les exΘcutables Visual Basic 4 dans n'importe quel ordre.
CaractΦres Θtendus dans les noms de fichiers Visual Basic
Si vous nommiez un module ou une classe Visual Basic en utilisant les caractΦres Θtendus d'une langue donnΘe, ce fichier pouvait ne pas s'ouvrir sur les machines configurΘes avec des paramΦtres rΘgionaux diffΘrents. Ceci a ΘtΘ corrigΘ.
III. ProblΦmes connus
-----------------
Corel WordPerfect Suite 7 : L'installation entraεne une erreur page invalide
Si vous installez Corel WordPerfect Suite 7 sur un systΦme Windows 95 exΘcutant DCOM95, en cours d'installation, vous pouvez obtenir une erreur page invalide dans PfOd70.pfc. Si tel est le cas, fermez la boεte de dialogue du message d'erreur. L'installation devrait se poursuivre correctement.
Microsoft Access95 : La duplication de base de donnΘes ne fonctionne pas
Si vous essayez de dupliquer une base de donnΘes Access α l'aide de Microsoft Access 95 sur des machines ΘquipΘes de DCOM95, vous pouvez obtenir le message d'erreur suivant :
Microsoft Access ne peut terminer cette opΘration parce qu'il ne peut pas trouver ou initialiser la bibliothΦque de liaison dynamique Msjtrclr.
Ce problΦme est d√ α Microsoft Access 95. Vous pouvez contourner ce problΦme en Θcrivant un programme qui utilise le modΦle d'objet Access au lieu de l'outil duplication, ou en utilisant le porte-documents pour duplication.
Microsoft Access 97 n'est pas affectΘ par ce problΦme.
WordPerfect
Si vous possΘdez un document WordPerfect contenant une feuille de calcul incorporΘe contenant lui-mΩme un autre objet incorporΘ (un bitmap par exemple), vous pouvez obtenir une boεte de dialogue vous avertissant que vous avez perdu la connexion au rΘseau lors de la fermeture de l'objet le plus profond. Il peut se produire quatre ou cinq avertissements. Ils sont tous bΘnins. Fermez-les et continuez.
Clients MAT (Multiple-threaded apartment) utilisant BSTR
Les routines de conversion peuvent bloquer les messages DDE
Automatisation des routines de conversion BSTR (par exemple, BstrFromR4)
crΘe des fenΩtres cachΘes pour faciliter la conversion de type. Ces fenΩtres ne servent pas la file d'attente de messages Windows. Si une telle fenΩtre est crΘΘe α partir d'un client MTA, les messages DDE peuvent Ωtre bloquΘs. Selon le modΦle de programmation MTE, le thread client n'a pas α servir la file d'attente des messages. S'il ne le fait pas, cette fenΩtre de niveau supΘrieur provoque le blocage des messages de diffusion globale.
Il existe deux maniΦres de contourner ce problΦme. Soit en appelant les routines de conversion BSTR α partir d'un client STA (Single-Threaded Apartment), soit en faisant en sorte que le thread MTA du client se comporte comme un thread STA. (Un thread STA doit servir la file d'attente des messages.). Si le thread se bloque sur un handle win32, il doit appeler la fonction MsgWaitForMultipleObjects afin de distribuer simultanΘment les messages Windows.
Les noms de chemins d'accΦs DLL de plus de 127 caractΦres provoquent une erreur
Si vous enregistrez une DLL sous un chemin d'accΦs de 128 caractΦres ou plus, l'enregistrement se fera, mais CoCreateInstance ou CoGetClassObject renverront une erreur (REGDB_E_CLASSNOTREG) lors de l'accΦs α un objet gΘrΘ par cette DLL.
IV. DiffΘrences avec DCOM sous Windows NT
---------------------------------------
PossibilitΘs de DCOM95 au niveau sΘcuritΘ
La fonctionnalitΘ principale et l'interface de programmation d'applications (API))
pour DCOM95 sont identiques sous Windows 95 et sous Windows NT 4.0/5.0. Cependant, certaines possibilitΘs concernant la sΘcuritΘ sont diffΘrentes du fait des infrastructures de sΘcuritΘ des systΦmes d'exploitation. L'utilisation des paramΦtres de sΘcuritΘ par dΘfaut est recommandΘe; il est Θgalement requis d'activer la sΘcuritΘ " niveau-utilisateur " sur les partages des fichiers systΦmes. (Voir ci-dessous.)
Les services suivants, pouvant Ωtre utilisΘs pour Θcraser les paramΦtres de sΘcuritΘ par dΘfaut, sont disponibles :
* CoInitializeSecurity
* CoQueryAuthenticationService
* CoQueryProxyBlanket
* CoSetProxyBlanket
* CoQueryClientBlanket
* IClientSecurity Interface
* IServerSecurity Interface
Cependant, certaines possibilitΘs de DCOM pour Windows NT ne seront pas disponibles sous Windows 95 du fait de diffΘrences dans l'infrastructure sΘcuritΘ de Windows 95.
En particulier, le manque de fonctions de sΘcuritΘ dans l'interface de programmation d'applications Win32, telles que la possibilitΘ de crΘer des listes de contr⌠le d'accΦs (ACL) et la fonction AccessCheck, de mΩme que le manque de sΘcuritΘ associΘe aux jetons de thread et de processus devront Ωtre pris en compte. D'origine, Windows 95 ne gΦre pas ces fonctions ou constructions. De ce fait, DCOM95 ne gΦre pas les emprunts d'identitΘ (spΘcifiquement les fonctions d'assistance CoImpersonateClient et CoRevertToSelf via l'interface IServerSecurity), qui sont basΘs sur la sΘcuritΘ des jetons de processus et de thread sous Windows NT 4.0. L'emprunt d'identitΘ est couramment utilisΘ pour le contr⌠le automatique d'accΦs α des ressources systΦmes pouvant Ωtre restreintes telles que le fichier systΦme, autres processus et le rΘseau. Ces ressources ne peuvent Ωtre restreintes sous Windows 95.
Cependant, DCOM95 offre aux programmeurs plusieurs objets d'assistance pour des fonctions ACL et de contr⌠le d'accΦs, qui peuvent Ωtre utilisΘes pour contr⌠ler explicitement l'accΦs des clients distants au systΦme et aux donnΘes, ou aux ressources dΘfinies par l'utilisateur. Ces objets d'assistance sont fournis par l'objet systΦme CLSID_DCOMAccessControl, qui implΘmente l'interface IAccessControl.
IAccessControl doit Ωtre utilisΘ pour la gestion par programmation des autorisations de sΘcuritΘs dans les cas concernant la portabilitΘ entre Windows 95/98 et Windows NT. L'objet CLSID_DCOMAccessControl est disponible dans toutes les versions de DCOM95 et dans Windows NT 4.0 SP2 ou versions ultΘrieures. Pour des dΘtails sur IAccessControl, voir la documentation Platform SDK.
Lancement et accΦs sΘcuritΘ
Le contr⌠le du lancement de code serveur n'est pas gΘrΘ par DCOM95, le lancement de serveurs n'Θtant pas gΘrΘ.
Les serveurs/classes doivent fonctionner pour que les clients distants puissent se connecter et utiliser leurs services.
DCOM95 gΦre la possibilitΘ de se connecter α des classes/serveurs en fonctionnement. La sΘcuritΘ d'accΦs est gΘrΘe via la clΘ de registre \APPID\{.}\AccessPermissions et allouΘe via l'utilitaire DCOMCNFG, ou au cours de l'installation du code serveur.
Les utilisateurs non-authentifiΘs peuvent utiliser les serveurs si vous configurez la classe de faτon α gΘrer les connexions non-authentifiΘes (via des utilitaires de configuration statique ou dynamiquement via la fonction CoInitializeSecurity). Vous pouvez Θgalement construire des ACLs arbitraire pour dΘfinir les utilisateurs et les groupes qui peuvent accΘder α des services spΘcifiques.
Niveaux d'authentification
Les clients DCOM95 peuvent effectuer des appels DCOM en utilisant tout niveau d'authentification. Les serveurs ou les clients DCOM95 recevant des rappels ne peuvent accepter que des appels DCOM qui utilisent les niveaux d'authentification RPC_C_AUTHN_LEVEL_NONE ou RPC_C_AUTHN_LEVEL_CONNECT.
Transports
DCOM95 ne gΦre que la connectivitΘ TCP. Si le protocole TCP/IP n'est pas installΘ, DCOM95 n'est pas capable de gΘrer la COM intermachine.
ParamΘtrage du registre
Les clΘs de registre suivantes, qui se trouvent sous HKEY_LOCAL_MACHINE\Software\Microsoft\OLE sont dΘfinies par DCOM95 :
EnableDCOM (par dΘfaut = " Y "). Active DCOM sur cette machine.
DΘfinie sur " N ", la machine n'est pas autorisΘe α se connecter ou α activer des objets sur une machine distante et les machines distantes ne peuvent se connecter α des objets situΘs sur la machine locale. DΘfinir cette valeur sur " Y " permet de se connecter en tant que client α des objets distants (lorsque EnableRemoteConnect='N', comme expliquΘ ci-dessous), ou complΦte connectivitΘ client/serveur (lorsque EnableRemoteConnect='Y', comme expliquΘ ci-dessous).
EnableRemoteConnect (par dΘfaut = " N "). Permet aux serveurs COM de gΘrer les clients distants. Lorsque cette valeur est dΘfinie sur " Y ", les rΘfΘrences aux interfaces sur les objets locaux peuvent Ωtre transmises aux clients distants et les clients distants peuvent se connecter aux objets en cours d'exΘcution. Lorsque cette valeur est dΘfinie sur " N ", cette machine peut se connecter aux objets distants mais ne peut se comporter comme un serveur : la machine n'est pas autorisΘe α se connecter α des objets en cours d'exΘcution.
De plus, la clΘ de registre suivante est situΘe sous HKEY_CLASSES_ROOT\CLSID :
Contient le numΘro de version de DCOM95 au format " a,b,c,d ".
Cette valeur peut Ωtre utilisΘe par Internet Component Download pour dΘterminer si DCOM95 est installΘ. Cette valeur est ajoutΘe au registre au moment de l'installation et ne doit pas Ωtre modifiΘe.
Utilisation de Windows 95 en tant que h⌠te serveur distant
Windows 95 peut Ωtre utilisΘ en tant que h⌠te serveur distant en tenant compte des avertissements suivants :
* Il n'existe pas de possibilitΘs de lancement. Le processus serveur doit fonctionner pour qu'un client puisse s'y connecter .
* Si des connexions sΘcurisΘes sont requises, le serveur (et dans le cas de rappels,
le client) doit possΘder le contr⌠le d'accΦs au niveau utilisateur
avec le nom d'un ensemble fournisseur sΘcuritΘ.
* La valeur de registre " EnableRemoteConnect " doit Ωtre dΘfinie sur " Y ".
DCOM95 a ΘtΘ plus intensΘment testΘ avec le fournisseur de sΘcuritΘ de domaine de Windows NT. Vous pourriez rencontrer des problΦmes en utilisant d'autres fournisseurs de sΘcuritΘ.
Pour Θtablir le contr⌠le d'accΦs niveau utilisateur, vous devez installer Filesec.vxd. Ce fichier est habituellement installΘ sur les machines Windows 95 lorsque vous installez le partage de fichiers et d'imprimantes.
Pour activer le contr⌠le d'accΦs niveau utilisateur, ouvrez la boεte de dialogue RΘseau dans le Panneau de configuration, cliquez sur l'onglet Contr⌠le d'accΦs, cochez la case marquΘe Contr⌠le d'accΦs niveau utilisateur, puis tapez le nom de votre domaine de sΘcuritΘ. Ceci peut affecter la maniΦre dont vous partagez les rΘpertoires sur le rΘseau α partir de votre ordinateur ; voir la documentation en ligne pour des dΘtails. Si vous n'avez pas d'onglet Contr⌠le d'accΦs dans votre Panneau de configuration du rΘseau, vous devez installer un service client rΘseau. Cliquez sur Clients rΘseau, puis saisissez une entrΘe dans la ligne d'index de l'aide pour plus d'informations sur l'installation d'un client rΘseau.
V. Redistribution
-----------------
Pour des informations sur la redistribution de DCOM95, consultez les rΦgles de redistribution contenues dans le contrat de licence d'utilisateur final (license.txt).
VI. Assistance & ressources
-----------------------
Services de Support Technique de Microsoft
Pour satisfaire au mieux vos exigences en termes de support technique, nous mettons α votre
disposition une gamme complΦte de prestations d'assistance technique. Cette offre couvre les
besoins des utilisateurs individuels, dΘveloppeurs, petites et moyennes entreprises. Elle se
dΘcline en quatre niveaux de services.
Services d'Information
Les Services d'Information vous permettent un accΦs rapide, facile et gratuit (ou α trΦs
faible co√t - les frais tΘlΘphoniques Θventuels sont α votre charge.), α toute notre
information technique. Vous y trouverez par exemple la Liste des RΘponses rΘponses aux
questions techniques les plus courantes sur lÆutilisation de nos produits, la Base de
Connaissances Microsoft quotidiennement enrichie par nos IngΘnieurs, la BibliothΦque
Logicielle Microsoft contenant de nombreux utilitaires, correctifs logiciels, mises α jour...
Pour accΘder α ces informations et davantage encore :
Vous pouvez vous connecter α :
╖ notre site Internet World Wide Web (http://www.eu.microsoft.com/france/support/ ou
http://www.microsoft.com/canada), ou vous abonner α lÆun de nos programmes dÆinformation
technique sur CD-ROM :
╖ Microsoft« TechNet, disponible par abonnement annuel, s'adresse plus particuliΦrement aux
utilisateurs de nos produits Bureautique et SystΦmes AvancΘs. Pour plus d'informations,
contactez depuis la France, le 0 800 916 097, et depuis le Canada, le 1 800 344-2121
(service en anglais seulement).
╖ Microsoft Developer Network (MSDN), disponible par abonnement annuel, s'adresse aux
dΘveloppeurs. Pour plus d'informations, contactez depuis la France, le 0 800 909 129, et
depuis le Canada, le 1 800 759-5474.
Assistance Utilisateur
En France, Microsoft offre(*) aux utilisateurs venant d'acquΘrir l'un de ses produits, une
Assistance Utilisateur pendant toute la durΘe de vie du produit(**). Cette assistance couvre
l'ensemble des produits Microsoft (boεtes) α l'exception des logiciels pour Serveurs
(Windows NT Serveur, BackOffice, etc.). Elle est proposΘe dans la limite de 2 incidents
(opΘrations d'assistance), pendant toute la durΘe de vie du produit.
Le service Assistance Utilisateur est accessible, sans interruption, du lundi au vendredi
de 9h00 α 19h00 et le samedi de 10h00 α 18h00 au 01.69.86.10.20.
Pour savoir si votre produit est couvert par ce service, reportez-vous α la liste des
produits pris en charge par l'Assistance Utilisateur en vous connectant α notre site
Internet http://www.eu.microsoft.com/france/support/ ou en faisant la demande α Microsoft
par tΘlΘphone, par fax ou par courrier.
(*) hors frais de communication.
(**) Jusqu'α 1 an aprΦs l'arrΩt de commercialisation du produit.
Au Canada**, l'Assistance Standard du Support Technique technique Microsoft offre une
assistance illimitΘe gratuite pour tous problΦmes d'utilisation, incluant les
fonctionnalitΘs des produits, les commandes des menus, la mise en forme, l'installation et
tous problΦmes relatifs α l'interface utilisateur sur les versions de dΘtail* des produits
Microsoft Home et des applications bureautiques.
L'Assistance Standard du Support Technique Microsoft est offerte du lundi au vendredi,
entre 8h et 20h HNE, α l'exception des jours fΘriΘs.
Une assistance limitΘe gratuite est Θgalement disponible selon les modalitΘs suivantes :
- deux incidents gratuits relatifs au dΘveloppement de solutions et d'applications
personnalisΘes pour les applications Microsoft Office, pour des problΦmes relatifs α
Microsoft Access et pour les versions commercialisΘes* de Visual Basic ou de Visual Fox
Pro. L'assistance de dΘveloppement se limite α une aide sur les macros, sur la syntaxe,
et sur les principes de base tels que l'Θcriture d'une boucle dans une macro vide ou le
dΘbogage d'une petite quantitΘ de code.
- deux incidents gratuits pour toutes les versions actuelles de dΘtail des produits de
dΘveloppement de Microsoft,
- deux incidents gratuits pour Microsoft Windows NT Workstation,
- 90 jours d'assistance gratuite pour les versions commercialisΘes* des produits SystΦmes
Personnels et matΘriel (Hardwaree), dΘbutant le jour de votre premier contact avec le
personnel d'assistance technique.sans frais pour les problΦmes non liΘs α la connectivitΘ
relatifs aux systΦmes personnels.
* Si votre produit est prΘ-installΘ ou distribuΘ avec votre ordinateur, le fabricant de
votre ordinateur est responsable de votre assistance technique.
L'Assistance Standard du Support Ttechnique de Microsoft est offerte du lundi au vendredi,
entre 8h et 20h HNE, α l'exception des jours fΘriΘs.
Pour recevoir une assistance gratuite au Canada, Vous pouvez composezr le (905) 568-35032294
pour les applications bureautiques, (905) 568-3503 pour les produits Microsoft Home et
les produits de dΘveloppement Microsoft ou le (905) 568-4494 pour les SystΦmes
d'Exploitation Personnels personnels et Hardwarele matΘriel.
Support α l'Incident
En France, le Support α l'Incident Microsoft vous garantit une assistance tΘlΘphonique pour
chacune de vos demandes ponctuelles de support sur l'ensemble de nos produits, y compris
sur nos systΦmes avancΘs. Cette assistance fait l'objet d'une facturation spΘcifique.
Pour en bΘnΘficier, veuillez composer le 01 69 86 10 20.
Au Canada**, avec lÆAssistance Prioritaire du Support Technique Microsoft technique
facturΘe par incident est disponible si vous voulez bΘnΘficier d'un accΦs prioritaire au
support techniqueSupport Technique, aprΦs avoir bΘnΘficiΘ de vos deux incidents d'assistance
gratuite ou aprΦs expiration de votre pΘriode d'assistance gratuite., vous pouvez choisir
l'assistance facturable par incident que vous achetez selon vos besoins, ou les comptes
annuels qui vous offrent des prix avantageux pour les achats en quantitΘ.
L'Assistance Prioritaire technique facturΘe par incident est disponible du lundi au vendredi,
α l'exception des jours fΘriΘs, de 8h α 20h HNE. Composez le 1 -800 -668-7975. Pour toute
information complΘmentaire sur l'Assistance Prioritaire pour les produits bureautiques,
veuillez appeler le 1 800 668-7975. Pour toute information complΘmentaire sur l'Assistance
Prioritaire pour les produits de dΘveloppement d'applications Office et de dΘveloppement
Microsoft, veuillez appeler le 1 800 936-3500. Le paiement de l'assistance technique est
effectuΘ par carte de crΘdit Visa, MasterCard ou American Express. L'incident est facturΘ
α 75,00 $ CAN plus les taxes applicables pour les produits de DdΘveloppement ou α
45,00 $ CAN pour tous les autres produits.
Microsoft Priority
Le Support Microsoft Priority, disponible sous forme de contrat annuel, vous permet de
bΘnΘficier d'un accΦs prioritaire et privilΘgiΘ α notre support techniqueSupport Technique.
Accessible par tΘlΘphone et via Internet, il se dΘcline en quatre offres, en fonction du
niveau d'assistance souhaitΘ et du type de produits utilisΘs. Pour plus dÆinformations,
contactez-nous.
En France, pour toute information complΘmentaire sur l'offre de Support Technique Microsoft,
veuillez contacter, par tΘlΘphone, le 01 69 86 44 88 (le Support Technique n'est pas
accessible par ce numΘro) ou consulter notre site Internet
http://www.eu.microsoft.com/france/support/.
L'offre de Support Technique Microsoft est soumise aux tarifs et conditions en vigueur, et
susceptible dÆΩtre modifiΘe sans prΘavis.
Au Canada**, si vous prΘvoyez de nombreux appels pour l'assistance technique, ou si vous
avez besoin d'un accΦs prioritaire au support techniqueSupport Technique de Microsoft, vous
pouvez souscrire α un compte d'assistance prioritaire Avantage pour produits de bureau.
Pour toute information complΘmentaire sur l'assistance prioritaire Avantage, composez le
1 -800 -668-7975 de 8h α 20h, heure de l'Est, du lundi au vendredi, α l'exception des jours
fΘriΘs.
Services pour sourds et malentendant (disponible au Canada seulement)
Microsoft offre des services pour les sourds et malentendants disposant d'un ATS (appareil
de tΘlΘcommunication pour sourds). Composez le (905) 568-9641 α l'aide d'un ATS.
**Les services d'assistance technique de Microsoft Canada sont assujettis aux tarifs,
termes et conditions actuels de Microsoft, qui peuvent Ωtre modifiΘs sans prΘavis.
Appel α une filiale Microsoft
Lorsque vous appelez, vous devez Ωtre α proximitΘ de votre ordinateur et avoir en main la
documentation appropriΘe du produit. Soyez prΩt α fournir les informations suivantes :
╖ Le type de contrat de service dont vous disposez.
╖ Le numΘro de la version du produit Microsoft que vous utilisez.
╖ Le type de configuration que vous utilisez, y compris le type de rΘseau si vous
travaillez avec un rΘseau.
╖ Le systΦme d'exploitation que vous utilisez.
╖ L'intitulΘ exact des messages Θventuels qui apparaissent α l'Θcran.
╖ Une description de ce qui s'est passΘ et de ce que vous faisiez lorsque le problΦme
Θventuel s'est posΘ.
╖ Une description des dΘmarches que vous avez suivies pour rΘsoudre le problΦme.
Support produit
La liste des pays et des filiales Microsoft offrant un support aprΦs-vente pour les
versions franτaises est indiquΘe ci-dessous.
S'il n'existe pas de filiale dans votre pays, veuillez contacter le vendeur auprΦs duquel
vous avez effectuΘ l'achat de votre produit Microsoft.
Pays NumΘros de tΘlΘphone
Belgique Microsoft NV
TΘlΘphone : (32) 2-730-3911
Fax : (32) 2-735-1609
CompuServe : 02-2150530 (GO MSBEN)
BBS : 02-7350045 (1200/2400/9600 bauds, 8 bits, pas de paritΘ,
1 bit de stop, Θmulation terminal ANSI)
Support technique (francophone) : (32) 2-513-2268
Canada Microsoft Canada Co.
TΘlΘphone : (1) (905) 568-0434
Centre d'information : 1-800-563-9048
TΘl. Support technique : 1 (905) 568-3503
BBS du Support technique : 1 (905) 507-3022
TΘlΘphone texte (TT/TDD) : 1 (905) 568-9641
France Microsoft FranceTΘlΘphone : (33) 01 69 86 46 46
pas de paritΘ, 1 bit de stop, Θmulation terminal ANSI)
Support technique (francophone) : (32) 2-513-2268
PolynΘsie franτaise Voir France
Suisse Microsoft SA
TΘlΘphone : (41) (1) 839 61 11
Fax : (41) (1) 831 08 69
Informations : TΘl. : 155 59 00
Fax : 064 - 224294
Microsoft Info-Service, Postfach, 8099 Zⁿrich
Prix, mises α jour, etc. : 01/839 61 11
CompuServe : 01/273 10 28 (GO MSEURO Microsoft Europe centrale)
Support technique (francophone) : (41) (22) 738 96 88
Assistance gratuite
Les Newsgroups constituent un excellent endroit pour obtenir l'assistance gratuite de confrΦres. Temps et ressources permettant, les dΘveloppeurs, les chefs de projets, les ingΘnieurs supports et les ingΘnieurs de tests visitent rΘguliΦrement le site pour rassembler les informations, rΘpondre aux questions et clarifier certaines situations. Aucune garantie n'est faite de recevoir une rΘponse α un message de la part de Microsoft.
Les newsgroups suivants peuvent Ωtre utilisΘs pour poser des questions concernant DCOM95 :
* comp.os.ms-windows.programmer.ole
* microsoft.public.win32.programmer.ole
Le fichier d'adresses DCOM constitue un autre moyen d'assistance gratuite.
Un avantage α figurer dans un fichier d'adresses est le fait que ce fichier est l'endroit o∙ Microsoft annonce l'arrivΘe d'informations sur un sujet donnΘ. Une fois de plus, ceci constitue une assistance entre confrΦres et le personnel Microsoft consulte souvent ce fichier, mais ne garantit pas de rΘponses aux messages.
Pour en savoir plus sur le fichiers d'adresses DCOM, consultez notre page Fichier d'adresses,